1. Field of the Invention
The invention relates generally to software testing and verification, and more particularly, to a system and method for dynamic fault injection software testing and verification.
2. Description of the Related Art
Conventional software testing techniques typically test and verify software for conditions of normal operational usage. Unfortunately, these techniques do not provide software testing and verification coverage for conditions that include unexpected input events, unexpected output events, or other operational anomalies that are potentially harmful to a software system.
Fault injection techniques have been utilized to overcome some of the disadvantages of conventional software testing techniques. These software fault injection techniques generally provide a tester with the ability to inject anomalous conditions into a software system and to observe the effects that these anomalies have on the software system. However, commonly used software fault injection techniques have disadvantages that include the absence of a cost effective, comprehensive, and time efficient approach to fault injection that can be used at the integration and system testing levels, as well as at the software unit testing levels. Moreover, these commonly used software fault injection techniques are based on static implementations and therefore limit a tester's ability to dynamically adapt to testing requirements that are continually changing.
In view of the forgoing, there is a need for a dynamic software fault injection approach that can accommodate unit-level, system-level and integration-level software testing.